List Prolog will have recursive variables names that can contain other variable names, e.g., in algorithm writer, $variable1 will contain type verification statements, and $($variable2) that points to  $variable2 will point to a data variable in the algorithm produced.  Recursive variables prevent the need to write algorithm writer in SWI-Prolog, allowing writing it in List Prolog, and avoid needing Variable1 instead of $variable1 and variable2 instead of $($variable2).